home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / UTILITY / SHOWKEYS.M < prev    next >
Encoding:
Text File  |  1990-11-04  |  4.9 KB  |  162 lines

  1. MODULE ShowKeys; (*$E MOS *)
  2. (*$C-*)
  3.  
  4. (*
  5.  * "Quick-And-Dirty"-Programm zum Anzeigen der Tastenkodes
  6.  *)
  7.  
  8. import tosio;
  9. from mosglobals import key, ctrlset, ctrlkey;
  10. from keyboard import specialcode, cap;
  11. from kbdctrl import getkey;
  12.  
  13. IMPORT inout;
  14. IMPORT keyboard;
  15.  
  16. var i,o,n:CARDINAL;c:char;
  17.  sk: specialcode; k,k2:key;
  18.  
  19. PROCEDURE show;
  20.   begin
  21.     inout.WriteString ('  ');
  22.     if shift in k.ctrl then inout.write ('S') else inout.write (' ') end;
  23.     inout.Write(' ');
  24.     if control in k.ctrl then inout.write ('C') else inout.write (' ') end;
  25.     inout.Write(' ');
  26.     if alternate in k.ctrl then inout.write ('A') else inout.write (' ') end;
  27.     inout.WriteString ('  ');
  28.     inout.writehex (k.scan,3);
  29.     inout.WriteString ('  ');
  30.     inout.writehex (ord(k.ch),3);
  31.     if k.ch>' ' then
  32.       inout.WriteString ('  ');
  33.       inout.write (k.ch)
  34.     else
  35.       inout.WriteString ('   ');
  36.     end;
  37.     inout.WriteString ('   ');
  38.     if keyboard.isascii(k) then
  39.       inout.writeString('A ');
  40.     else
  41.       inout.writeString('  ');
  42.     end;
  43.     if keyboard.isspecial(k) then
  44.       inout.writeString('X ');
  45.     else
  46.       inout.writeString('  ');
  47.     end;
  48.     if keyboard.iscursor(k) then
  49.       inout.writeString('C ');
  50.     else
  51.       inout.writeString('  ');
  52.     end;
  53.     if keyboard.isalternate(k) then
  54.       inout.writeString('A ');
  55.     else
  56.       inout.writeString('  ');
  57.     end;
  58.     if keyboard.isfunction(k) then
  59.       inout.writeString('F ');
  60.     else
  61.       inout.writeString('  ');
  62.     end;
  63.     if keyboard.onnumblock(k) then
  64.       inout.writeString('NB ');
  65.     else
  66.       inout.writeString('   ');
  67.     end;
  68.     if keyboard.oncursorblock(k) then
  69.       inout.writeString('CB ');
  70.     else
  71.       inout.writeString('   ');
  72.     end;
  73.     if keyboard.onalphablock(k) then
  74.       inout.writeString('AB ');
  75.     else
  76.       inout.writeString('   ');
  77.     end;
  78.     if keyboard.onfunctionblock(k) then
  79.       inout.writeString('FB ');
  80.     else
  81.       inout.writeString('   ');
  82.     end;
  83.     case keyboard.keycap(k) of
  84.       unspecCap: inout.WriteString ('no  ') |
  85.       escCap: inout.WriteString ('esc ') |
  86.       tabCap: inout.WriteString ('tab ') |
  87.       backspaceCap: inout.WriteString ('bs  ') |
  88.       deleteCap: inout.WriteString ('del ') |
  89.       returnCap: inout.WriteString ('ret ') |
  90.       enterCap: inout.WriteString ('ent ') |
  91.       helpCap: inout.WriteString ('help') |
  92.       undoCap: inout.WriteString ('undo') |
  93.       insertCap: inout.WriteString ('ins ') |
  94.       clrHomeCap: inout.WriteString ('clr ') |
  95.       upCap: inout.WriteString ('up  ') |
  96.       downCap: inout.WriteString ('dwn ') |
  97.       leftCap: inout.WriteString ('left') |
  98.       rightCap: inout.WriteString ('rig ') |
  99.       f1Cap: inout.WriteString ('f1  ') |
  100.       f2Cap: inout.WriteString ('f2  ') |
  101.       f3Cap: inout.WriteString ('f3  ') |
  102.       f4Cap: inout.WriteString ('f4  ') |
  103.       f5Cap: inout.WriteString ('f5  ') |
  104.       f6Cap: inout.WriteString ('f6  ') |
  105.       f7Cap: inout.WriteString ('f7  ') |
  106.       f8Cap: inout.WriteString ('f8  ') |
  107.       f9Cap: inout.WriteString ('f9  ') |
  108.       f10Cap: inout.WriteString ('f10 ') |
  109.     end;
  110.     inout.writestring (' cap / ');
  111.     sk:=keyboard.specialkey (k);
  112.     case sk of
  113.       unspecKey: inout.writestring ('...') |
  114.       f1..f20: inout.writestring ('f');inout.writecard(ord(sk)+1-ord(f1),0) |
  115.       esc: inout.writestring ('esc') |
  116.       tab: inout.writestring ('tab') |
  117.       backspace: inout.writestring ('bs') |
  118.       delete: inout.writestring ('del') |
  119.       insert: inout.writestring ('ins') |
  120.       insLine: inout.writestring ('ins ln') |
  121.       return: inout.writestring ('ret') |
  122.       enter: inout.writestring ('ent') |
  123.       up: inout.writestring ('up') |
  124.       down: inout.writestring ('down') |
  125.       left: inout.writestring ('left') |
  126.       right: inout.writestring ('right') |
  127.       pgUp: inout.writestring ('pgup') |
  128.       pgDown: inout.writestring ('pgdown') |
  129.       wdLeft: inout.writestring ('wdleft') |
  130.       wdRight: inout.writestring ('wdright') |
  131.       soln: inout.writestring ('soln') |
  132.       eoln: inout.writestring ('eoln') |
  133.       clr: inout.writestring ('clr') |
  134.       home: inout.writestring ('home') |
  135.       help: inout.writestring ('help') |
  136.       undo: inout.writestring ('undo') |
  137.       delLine: inout.writestring ('delln') |
  138.       ctrlA..ctrlZ: inout.writestring ('ctrl');
  139.         inout.write(chr(ord(sk)-ord(ctrla)+$41)) |
  140.       alt1..alt0: inout.writestring ('alt');
  141.         inout.writecard(ord(sk)+1-ord(alt1),0) |
  142.       altA..altZ: inout.writestring ('alt');
  143.         inout.write(chr(ord(sk)-ord(alta)+$41)) |
  144.     end;
  145.     inout.writeln;
  146.   end show;
  147.  
  148. var ok: BOOLEAN;
  149.  
  150. begin
  151.   inout.writeln;
  152.   inout.WriteString ('Ende mit "%".');
  153.   inout.writeln;
  154.   loop
  155.     repeat
  156.       GetKey (k, ok);
  157.     until ok;
  158.     if k.ch='%' then exit end;
  159.     show;       (* key-werte zeigen *)
  160.   end;
  161. END ShowKeys.
  162.